class Solution {
public:
    int depth(TreeNode *root) {//DFS的过程中计算深度
        if (!root) return 0;
        int ldep=depth(root->left);
        if(ldep==-1) return -1;//相当于减枝
        int rdep=depth(root->right);
        if(rdep==-1) return -1;
        int sub=abs(ldep-rdep);
        if(sub>1) return -1;
        return max(ldep,rdep)+1;
    }
    bool IsBalanced_Solution(TreeNode* root) {
        return depth(root)!=-1;
    }
};